/// @tags: Table
#include <algorithm>
#include <cstdio>
#include <iostream>

using namespace std;

namespace BlueQuantum {

int const a[] = {
    1,         2,         4,         6,          12,        24,        36,
    48,        60,        120,       180,        240,       360,       720,
    840,       1260,      1680,      2520,       5040,      7560,      10080,
    15120,     20160,     25200,     27720,      45360,     50400,     55440,
    83160,     110880,    166320,    221760,     277200,    332640,    498960,
    554400,    665280,    720720,    1081080,    1441440,   2162160,   2882880,
    3603600,   4324320,   6486480,   7207200,    8648640,   10810800,  14414400,
    17297280,  21621600,  32432400,  36756720,   43243200,  61261200,  73513440,
    110270160, 122522400, 147026880, 183783600,  245044800, 294053760, 367567200,
    551350800, 698377680, 735134400, 1102701600, 1396755360};

long long n;

inline int main() {
  cin >> n;
  cout << *(upper_bound(a, a + sizeof(a) / sizeof(int), n) - 1);
  return 0;
}

}  // namespace BlueQuantum

int main() {
#ifndef ONLINE_JUDGE
#ifdef LOCAL
  freopen("/tmp/CodeTmp/testdata.in", "r", stdin);
  freopen("/tmp/CodeTmp/testdata.out", "w", stdout);
#else
  freopen("P1463 [POI2002][HAOI2007] 反素数.in", "r", stdin);
  freopen("P1463 [POI2002][HAOI2007] 反素数.out", "w", stdout);
#endif
#endif

  ios::sync_with_stdio(false), cin.tie(NULL), cout.tie(NULL);
  return BlueQuantum::main();
}
